home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / misc / egs.lha / EGS / EGS_Devels / Examples / EGS_Menu / eventloop.c next >
Text File  |  1993-02-17  |  3KB  |  125 lines

  1. /*
  2. **  Author: Markus van Kempen
  3. **  Date  : 8 November 92
  4. **
  5. **
  6. **  This routine handles events (like Commodore)
  7. **
  8. **  (c) by VIONA-Development 1992/93
  9. **
  10. */
  11.  
  12.  
  13. BOOL
  14. HandleEvents(struct EI_Window * fenster)
  15. {
  16.     BOOL            raus = FALSE;       /* TRUE, if function shall exit */
  17.     ULONG           GetBits, WaitBits;  /* MessagePort bits */
  18.     EI_EIntuiMsgPtr imess;      /* Message structure pointer */
  19.  
  20.     WaitBits = (1L << fenster->UserPort->mp_SigBit) | SIGBREAKF_CTRL_C;
  21.  
  22.     while (!raus)
  23.     {
  24.         GetBits = Wait(WaitBits);
  25.  
  26.         if (GetBits & SIGBREAKF_CTRL_C) /* CTRL-C gedrückt */
  27.         {
  28.             raus = TRUE;
  29.         }
  30.  
  31.         while ((imess = (struct EI_EIntuiMsg *) GetMsg(fenster->UserPort)) != NULL)
  32.         {
  33.             switch (imess->Class)
  34.             {
  35.             case EI_iRAWKEY:
  36.                 printf("iRawKey\n");
  37.                 ReplyMsg((struct Message *) imess);
  38.                 break;
  39.  
  40.             case EI_iCLOSEWINDOW:
  41.  
  42.                 printf("iClose\n");
  43.  
  44.                 ReplyMsg((struct Message *) imess);
  45.                 raus = TRUE;
  46.                 break;
  47.  
  48.             case EI_iMENUVERIFY:
  49.                 printf("iMenuVerify\n");
  50.                 ReplyMsg((struct Message *) imess);
  51.                 break;
  52.  
  53.             case EI_iMENUPICK:
  54.  
  55.                 printf("iMenu\n");
  56.                 printf("Code = %lx\n", imess->Code);
  57.                 /*
  58.  
  59.                     switch(imess->Code)
  60.                     {
  61.  
  62.                     }
  63.  
  64.  
  65.                  */
  66.                 ReplyMsg((struct Message *) imess);
  67.                 break;
  68.  
  69.             case EI_iSIZEVERIFY:
  70.  
  71.                 printf("VerifySizing ! \n");
  72.  
  73.                 ReplyMsg((struct Message *) imess);
  74.                 break;
  75.  
  76.             case EI_iNEWSIZE:
  77.  
  78.                 printf("Sizing ! \n");
  79.  
  80.                 ReplyMsg((struct Message *) imess);
  81.                 break;
  82.  
  83.             case EI_iACTIVEWINDOW:
  84.                 printf("Active ! \n");
  85.                 ReplyMsg((struct Message *) imess);
  86.                 break;
  87.  
  88.             case EI_iMOUSEMOVE:
  89.                 printf("    MouseMove ! \n");
  90.                 printf("    MouseX = %d \n", imess->MouseX);
  91.                 printf("    MouseY = %d \n", imess->MouseY);
  92.  
  93.                 ReplyMsg((struct Message *) imess);
  94.                 break;
  95.  
  96.             case EI_iMOUSEBUTTONS:
  97.                 printf("MouseButtons\n");
  98.                 ReplyMsg((struct Message *) imess);
  99.                 break;
  100.  
  101.             case EI_iINACTIVEWINDOW:
  102.                 printf("Inactive \n");
  103.                 ReplyMsg((struct Message *) imess);
  104.                 break;
  105.  
  106.             case EI_iVANILLAKEY:
  107.                 printf("Vanilla \n");
  108.  
  109.                 break;
  110.  
  111.             case EI_iGADGETUP:
  112.                 printf("Gadget \n");
  113.                 ReplyMsg((struct Message *) imess);
  114.                 break;
  115.  
  116.             default:
  117.                 printf(" Unknown message %x & %x\n ", imess->Class, imess->Code);
  118.                 ReplyMsg((struct Message *) imess);
  119.  
  120.             }
  121.         }
  122.     }
  123.     return raus;
  124. }
  125.